# 下拉框组件工作类

class ComboBoxUtil:
    def __init__(self,comboBox):
        self.comboBox = comboBox

    # 重写根据列表添加选项的方法 （【item->key,value】,所取对象展示键，实际值）
    def addItems(self,items,key,value):

        # items.insert(0,{str(key):"请选择",str(value):"请选择"})

        # 遍历是否存在重复项
        if not (len(items) == len(set([item[str(key)] for item in items]))):
            raise Exception("列表存在重复项，请进行排重")

        #         取键
        key_list = [item[key] for item in items]
        #         取值
        value_list = [item[value] for item in items]
        #         压缩变为新列表缓存
        self.comboBox.data_list = list(zip(key_list,value_list))
        #         将键添加至列表
        self.comboBox.addItems(key_list)

    #           返回当前选中项实际值
    def getValue(self):
        key = self.comboBox.currentText()
        for index,item in enumerate(self.comboBox.data_list):
            if item[0] == key:
                return item[1]

    def setvalue(self,value):
        for index,item in enumerate(self.comboBox.data_list):
            if item[1] == value:
                self.setCurrentIndex(index)
                return